package com.bj58.groupbuy.action.service;

import java.util.List;
import java.util.Map;

import com.bj58.groupbuy.action.model.IndexManager;
import com.bj58.groupbuy.action.model.ReportManager;

/** 
 * @author wangchonglu  2016年3月3日 
 *
 */
public interface IndexManagerService {
	/**
	 *   报表管理  查询类型
	 */
     public <T> List<T> getTypeByTypeName(String table,String typeName,Class<T> clazz,String condition) throws Exception;
     
    
	/**查询总记录（指标管理、报表管理）    
	 */
	public int getTotalCountByTable(Map<String,String> map)throws Exception;
	

	/**根据id查询
	 */
	public IndexManager getIndexDataByid(String indexName)throws Exception;
	
	/**指标管理    查询
	 */
	public List<IndexManager> getIndexManagerDataForSql(String indexInfo,String indexName,String condition)throws Exception;
	
	/**
	 * 指标管理  查询数据库所有的指定的类型
	 * 
	 */
	public List<String> getIndexType(String cate) throws Exception;
	
	
	
	/**
	 *  指标管理  修改信息
	 */

	public int updateData(String indexName,Map<String,String> map) throws Exception;
	
	/**
	 * 指标管理    新增
	 */
	public int insert(String indexName,String indexInfo,String cate1,String cate2,String indexType,String countRule,String remark,String creater) throws Exception;
	
	/**
	 * 指标管理  判断指标英文名称是否存在
	 */
	public boolean isIndexNameExist(String indexName) throws Exception;
	
	
	/**
	 *  报表管理   查询
	 */
	public List<ReportManager> getReportManagerList(Map<String,String> map,String condition) throws Exception;
	
	
	/**
	 *  报表管理  修改信息
	 */

	public int updateReportData(String tableName,Map<String,String> map) throws Exception;
	
	/**
	 * 报表管理    新增
	 */
	public int insertReportData(String tableName,String indexName,String tableInfo,String cate1,String cate2,String remark) throws Exception;
	
	
	/**
	 * 报表管理  查询类型
	 */
	public List<String> getReportTypeName(String typeName,String codition) throws Exception;
	
	/**
	 *  报表属性管理 查询一级类
	 */
	public List<ReportManager> getReportCate1() throws Exception;
	
	/**
	 *  报表属性管理 根据id查询
	 */
	public List<ReportManager> getReportById(String id) throws Exception;
	
	/**
	 *  报表属性管理 根据id查询
	 */
	public List<ReportManager> getReportByInput(String input) throws Exception;
	/**
	 *  报表属性管理 根据一级类查询二级类
	 */
	public List<ReportManager> getReportCate2ByCate1(String Cate1) throws Exception;
	
	/**
	 *  报表属性管理 根据一级类、二级类查询所有属性
	 */
	public List<ReportManager> getReportIndexByCate2(String Cate1,String Cate2) throws Exception;
	
	/**
	 *  报表属性管理 根据一级类、二级类、指标类别查询所有属性
	 */
	public List<ReportManager> getReportIndexByIndexType(String Cate1,String Cate2,String IndexType) throws Exception;
	
}

